package com.wangshili.sys.service;

import java.util.List;
import java.util.Map;

import org.springframework.transaction.annotation.Transactional;

import com.wangshili.pojo.common.vo.SysZTreeNode;
import com.wangshili.pojo.sys.entity.SysMenu;

/**
 * 菜单管理服务层接口
 * @author wangshili
 *
 */
public interface SysMenuService {
	/**
	 * 查询菜单数据
	 * @return 上级名称，菜单信息的map
	 */
	List<Map<String,Object>> findPageObject();
	
	/**
	 * 根据指定id删除菜单
	 * @param id
	 * @return
	 */
	int deleteById(Integer id);
	
	/**
	 * 通过菜单id统计子节点的数量，判断其他菜单的父id是不是当前菜单的id来统计
	 * @param id 
	 * @return 父节点数量
	 */
	int countParentById(Integer id);
	
	/**
	 * 查询菜单表
	 * @return 封装了MenuNode的集合
	 */
	List<SysZTreeNode> selectMenuNode();
	
	/**
	 * 添加菜单，在添加前需要设置创建时间和更新时间
	 * @param entity 菜单实体信息
	 * @return
	 */
	int insertMenuObject(SysMenu entity);
	
	/**
	 * 修改菜单，在添加前需要设置更新时间
	 * @param entity
	 * @return
	 */
//	@Transactional
	int updateMenuObject(SysMenu entity);
	

}
